// RAP [rh] quick access disabled ///******************************************************************************* // * Copyright (c) 2005, 2010 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.internal.quickaccess; // //import java.util.ArrayList; //import java.util.HashMap; //import java.util.Iterator; //import java.util.LinkedList; //import java.util.List; //import java.util.Map; //import org.eclipse.core.commands.Command; //import org.eclipse.core.runtime.Assert; //import org.eclipse.jface.bindings.TriggerSequence; //import org.eclipse.jface.bindings.keys.KeySequence; //import org.eclipse.jface.bindings.keys.SWTKeySupport; //import org.eclipse.jface.dialogs.IDialogSettings; //import org.eclipse.jface.dialogs.PopupDialog; //import org.eclipse.jface.layout.GridDataFactory; //import org.eclipse.jface.layout.GridLayoutFactory; //import org.eclipse.jface.layout.TableColumnLayout; //import org.eclipse.jface.resource.FontDescriptor; //import org.eclipse.jface.resource.ImageDescriptor; //import org.eclipse.jface.resource.JFaceResources; //import org.eclipse.jface.resource.LocalResourceManager; //import org.eclipse.jface.util.Util; //import org.eclipse.jface.viewers.ColumnWeightData; //import org.eclipse.osgi.util.NLS; //import org.eclipse.swt.SWT; //import org.eclipse.swt.custom.BusyIndicator; //import org.eclipse.swt.events.ControlAdapter; //import org.eclipse.swt.events.ControlEvent; //import org.eclipse.swt.events.KeyAdapter; //import org.eclipse.swt.events.KeyEvent; //import org.eclipse.swt.events.KeyListener; //import org.eclipse.swt.events.ModifyEvent; //import org.eclipse.swt.events.ModifyListener; //import org.eclipse.swt.events.MouseAdapter; //import org.eclipse.swt.events.MouseEvent; //import org.eclipse.swt.events.MouseMoveListener; //import org.eclipse.swt.events.SelectionEvent; //import org.eclipse.swt.events.SelectionListener; //import org.eclipse.swt.graphics.Color; //import org.eclipse.swt.graphics.Font; //import org.eclipse.swt.graphics.Point; //import org.eclipse.swt.graphics.Rectangle; //import org.eclipse.swt.graphics.TextLayout; //import org.eclipse.swt.graphics.TextStyle; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.Control; //import org.eclipse.swt.widgets.Event; //import org.eclipse.swt.widgets.Listener; //import org.eclipse.swt.widgets.Shell; //import org.eclipse.swt.widgets.Table; //import org.eclipse.swt.widgets.TableColumn; //import org.eclipse.swt.widgets.TableItem; //import org.eclipse.swt.widgets.Text; //import org.eclipse.ui.IWorkbenchPreferenceConstants; //import org.eclipse.ui.IWorkbenchWindow; //import org.eclipse.ui.PlatformUI; //import org.eclipse.ui.internal.IWorkbenchGraphicConstants; //import org.eclipse.ui.internal.WorkbenchImages; //import org.eclipse.ui.internal.WorkbenchPlugin; //import org.eclipse.ui.internal.progress.ProgressManagerUtil; //import org.eclipse.ui.keys.IBindingService; //import org.eclipse.ui.themes.ColorUtil; // // ///** // * @since 3.3 // * // */ //public class QuickAccessDialog extends PopupDialog { // private static final int INITIAL_COUNT_PER_PROVIDER = 5; // private static final int MAX_COUNT_TOTAL = 20; // // protected Text filterText; // // private QuickAccessProvider[] providers; // private IWorkbenchWindow window; // // protected Table table; // // private LocalResourceManager resourceManager = new LocalResourceManager( // JFaceResources.getResources()); // // private static final String TEXT_ARRAY = "textArray"; //$NON-NLS-1$ // private static final String TEXT_ENTRIES = "textEntries"; //$NON-NLS-1$ // private static final String ORDERED_PROVIDERS = "orderedProviders"; //$NON-NLS-1$ // private static final String ORDERED_ELEMENTS = "orderedElements"; //$NON-NLS-1$ // static final int MAXIMUM_NUMBER_OF_ELEMENTS = 60; // static final int MAXIMUM_NUMBER_OF_TEXT_ENTRIES_PER_ELEMENT = 3; // // protected String rememberedText; // // protected Map textMap = new HashMap(); // // protected Map elementMap = new HashMap(); // // private LinkedList previousPicksList = new LinkedList(); // // protected Map providerMap; // // private Font italicsFont; // private Color grayColor; // private TextLayout textLayout; // private TriggerSequence[] invokingCommandKeySequences; // private Command invokingCommand; // private KeyAdapter keyAdapter; // private boolean showAllMatches = false; // protected boolean resized = false; // // // public QuickAccessDialog(IWorkbenchWindow window, final Command invokingCommand) { // super(ProgressManagerUtil.getDefaultParent(), SWT.RESIZE, true, true, // persist size // false, // but not location // true, true, null, // QuickAccessMessages.QuickAccess_StartTypingToFindMatches); // // this.window = window; // BusyIndicator.showWhile(window.getShell() == null ? null : window // .getShell().getDisplay(), new Runnable() { // public void run() { // QuickAccessDialog.this.providers = new QuickAccessProvider[] { // new PreviousPicksProvider(), new EditorProvider(), // new ViewProvider(), new PerspectiveProvider(), // new CommandProvider(), new ActionProvider(), // new WizardProvider(), new PreferenceProvider(), // new PropertiesProvider() }; // providerMap = new HashMap(); // for (int i = 0; i < providers.length; i++) { // providerMap.put(providers[i].getId(), providers[i]); // } // restoreDialog(); // QuickAccessDialog.this.invokingCommand = invokingCommand; // if (QuickAccessDialog.this.invokingCommand != null // && !QuickAccessDialog.this.invokingCommand.isDefined()) { // QuickAccessDialog.this.invokingCommand = null; // } else { // // Pre-fetch key sequence - do not change because scope will // // change later. // getInvokingCommandKeySequences(); // } // // create early // create(); // } // }); // // Ugly hack to avoid bug 184045. If this gets fixed, replace the // // following code with a call to refresh(""). // getShell().getDisplay().asyncExec(new Runnable() { // public void run() { // final Shell shell = getShell(); // if (shell != null && !shell.isDisposed()) { // Point size = shell.getSize(); // shell.setSize(size.x, size.y + 1); // } // } // }); // } // // protected Control createTitleControl(Composite parent) { // filterText = new Text(parent, SWT.NONE); // // GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false) // .applyTo(filterText); // // filterText.addKeyListener(getKeyAdapter()); // filterText.addKeyListener(new KeyListener() { // public void keyPressed(KeyEvent e) { // switch (e.keyCode) { // case SWT.CR: // case SWT.KEYPAD_CR: // handleSelection(); // break; // case SWT.ARROW_DOWN: // int index = table.getSelectionIndex(); // if (index != -1 && table.getItemCount() > index + 1) { // table.setSelection(index + 1); // } // table.setFocus(); // break; // case SWT.ARROW_UP: // index = table.getSelectionIndex(); // if (index != -1 && index >= 1) { // table.setSelection(index - 1); // table.setFocus(); // } // break; // case SWT.ESC: // close(); // break; // } // } // // public void keyReleased(KeyEvent e) { // // do nothing // } // }); // filterText.addModifyListener(new ModifyListener() { // public void modifyText(ModifyEvent e) { // String text = ((Text) e.widget).getText().toLowerCase(); // refresh(text); // } // }); // // return filterText; // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.dialogs.PopupDialog#createDialogArea(org.eclipse.swt.widgets.Composite) // */ // protected Control createDialogArea(Composite parent) { // Composite composite = (Composite) super.createDialogArea(parent); // boolean isWin32 = Util.isWindows(); // GridLayoutFactory.fillDefaults().extendedMargins(isWin32 ? 0 : 3, 3, 2, 2).applyTo(composite); // Composite tableComposite = new Composite(composite, SWT.NONE); // GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite); // TableColumnLayout tableColumnLayout = new TableColumnLayout(); // tableComposite.setLayout(tableColumnLayout); // table = new Table(tableComposite, SWT.SINGLE | SWT.FULL_SELECTION); // textLayout = new TextLayout(table.getDisplay()); // textLayout.setOrientation(getDefaultOrientation()); // Font boldFont = resourceManager.createFont(FontDescriptor.createFrom( // JFaceResources.getDialogFont()).setStyle(SWT.BOLD)); // textLayout.setFont(table.getFont()); // textLayout.setText(QuickAccessMessages.QuickAccess_AvailableCategories); // int maxProviderWidth = (int) (textLayout.getBounds().width * 1.1); // textLayout.setFont(boldFont); // for (int i = 0; i < providers.length; i++) { // QuickAccessProvider provider = providers[i]; // textLayout.setText(provider.getName()); // int width = (int) (textLayout.getBounds().width * 1.1); // if (width > maxProviderWidth) { // maxProviderWidth = width; // } // } // tableColumnLayout.setColumnData(new TableColumn(table, SWT.NONE), // new ColumnWeightData(0, maxProviderWidth)); // tableColumnLayout.setColumnData(new TableColumn(table, SWT.NONE), // new ColumnWeightData(100, 100)); // table.getShell().addControlListener(new ControlAdapter() { // public void controlResized(ControlEvent e) { // if (!showAllMatches) { // if (!resized) { // resized = true; // e.display.timerExec(100, new Runnable() { // public void run() { // if (getShell() != null // && !getShell().isDisposed()) { // refresh(filterText.getText().toLowerCase()); // } // resized = false; // } // }); // } // } // } // }); // // table.addKeyListener(getKeyAdapter()); // table.addKeyListener(new KeyListener() { // public void keyPressed(KeyEvent e) { // if (e.keyCode == SWT.ARROW_UP && table.getSelectionIndex() == 0) { // filterText.setFocus(); // } else if (e.character == SWT.ESC) { // close(); // } // } // // public void keyReleased(KeyEvent e) { // // do nothing // } // }); // table.addMouseListener(new MouseAdapter() { // public void mouseUp(MouseEvent e) { // // if (table.getSelectionCount() < 1) // return; // // if (e.button != 1) // return; // // if (table.equals(e.getSource())) { // Object o= table.getItem(new Point(e.x, e.y)); // TableItem selection= table.getSelection()[0]; // if (selection.equals(o)) // handleSelection(); // } // } // }); // table.addMouseMoveListener(new MouseMoveListener() { // TableItem lastItem = null; // // public void mouseMove(MouseEvent e) { // if (table.equals(e.getSource())) { // Object o = table.getItem(new Point(e.x, e.y)); // if (lastItem == null ^ o == null) { // table.setCursor(o == null ? null : table.getDisplay().getSystemCursor( // SWT.CURSOR_HAND)); // } // if (o instanceof TableItem) { // if (!o.equals(lastItem)) { // lastItem = (TableItem) o; // table.setSelection(new TableItem[] { lastItem }); // } // } else if (o == null) { // lastItem = null; // } // } // } // }); // // table.addSelectionListener(new SelectionListener() { // public void widgetSelected(SelectionEvent e) { // // do nothing // } // // public void widgetDefaultSelected(SelectionEvent e) { // handleSelection(); // } // }); // // // final TextStyle boldStyle; // if (PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.USE_COLORED_LABELS)) { // boldStyle = new TextStyle(boldFont, null, null); // // italicsFont = resourceManager.createFont(FontDescriptor.createFrom( // // table.getFont()).setStyle(SWT.ITALIC)); // grayColor = resourceManager.createColor(ColorUtil.blend(table // .getBackground().getRGB(), table.getForeground().getRGB())); // } else { // boldStyle = null; // } // Listener listener = new Listener() { // public void handleEvent(Event event) { // QuickAccessEntry entry = (QuickAccessEntry) event.item // .getData(); // if (entry != null) { // switch (event.type) { // case SWT.MeasureItem: // entry.measure(event, textLayout, resourceManager, // boldStyle); // break; // case SWT.PaintItem: // entry.paint(event, textLayout, resourceManager, // boldStyle, grayColor); // break; // case SWT.EraseItem: // entry.erase(event); // break; // } // } // } // }; // table.addListener(SWT.MeasureItem, listener); // table.addListener(SWT.EraseItem, listener); // table.addListener(SWT.PaintItem, listener); // // return composite; // } // // /** // * // */ // private int computeNumberOfItems() { // Rectangle rect = table.getClientArea (); // int itemHeight = table.getItemHeight (); // int headerHeight = table.getHeaderHeight (); // return (rect.height - headerHeight + itemHeight - 1) / (itemHeight + table.getGridLineWidth()); // } // // /** // * // */ // private void refresh(String filter) { // int numItems = computeNumberOfItems(); // // // perfect match, to be selected in the table if not null // QuickAccessElement perfectMatch = (QuickAccessElement) elementMap // .get(filter); // // List[] entries = computeMatchingEntries(filter, perfectMatch, numItems); // // int selectionIndex = refreshTable(perfectMatch, entries); // // if (table.getItemCount() > 0) { // table.setSelection(selectionIndex); // } else if (filter.length() == 0) { // { // TableItem item = new TableItem(table, SWT.NONE); // item.setText(0, // QuickAccessMessages.QuickAccess_AvailableCategories); // item.setForeground(0, grayColor); // } // for (int i = 0; i < providers.length; i++) { // QuickAccessProvider provider = providers[i]; // TableItem item = new TableItem(table, SWT.NONE); // item.setText(1, provider.getName()); // item.setForeground(1, grayColor); // } // } // // if (filter.length() == 0) { // setInfoText(QuickAccessMessages.QuickAccess_StartTypingToFindMatches); // } else { // TriggerSequence[] sequences = getInvokingCommandKeySequences(); // if (showAllMatches || sequences == null || sequences.length == 0) { // setInfoText(""); //$NON-NLS-1$ // } else { // setInfoText(NLS // .bind( // QuickAccessMessages.QuickAccess_PressKeyToShowAllMatches, // sequences[0].format())); // } // } // } // // final protected TriggerSequence[] getInvokingCommandKeySequences() { // if (invokingCommandKeySequences == null) { // if (invokingCommand != null) { // IBindingService bindingService = (IBindingService) window // .getWorkbench().getAdapter(IBindingService.class); // invokingCommandKeySequences = bindingService // .getActiveBindingsFor(invokingCommand.getId()); // } // } // return invokingCommandKeySequences; // } // // private KeyAdapter getKeyAdapter() { // if (keyAdapter == null) { // keyAdapter = new KeyAdapter() { // public void keyPressed(KeyEvent e) { // int accelerator = SWTKeySupport // .convertEventToUnmodifiedAccelerator(e); // KeySequence keySequence = KeySequence // .getInstance(SWTKeySupport // .convertAcceleratorToKeyStroke(accelerator)); // TriggerSequence[] sequences = getInvokingCommandKeySequences(); // if (sequences == null) // return; // for (int i = 0; i < sequences.length; i++) { // if (sequences[i].equals(keySequence)) { // e.doit = false; // toggleShowAllMatches(); // return; // } // } // } // }; // } // return keyAdapter; // } // // protected void toggleShowAllMatches() { // showAllMatches = !showAllMatches; // refresh(filterText.getText().toLowerCase()); // } // // private int refreshTable(QuickAccessElement perfectMatch, List[] entries) { // if (table.getItemCount() > entries.length // && table.getItemCount() - entries.length > 20) { // table.removeAll(); // } // TableItem[] items = table.getItems(); // int selectionIndex = -1; // int index = 0; // for (int i = 0; i < providers.length; i++) { // if (entries[i] != null) { // boolean firstEntry = true; // for (Iterator it = entries[i].iterator(); it.hasNext();) { // QuickAccessEntry entry = (QuickAccessEntry) it.next(); // entry.firstInCategory = firstEntry; // firstEntry = false; // if (!it.hasNext()) { // entry.lastInCategory = true; // } // TableItem item; // if (index < items.length) { // item = items[index]; // table.clear(index); // } else { // item = new TableItem(table, SWT.NONE); // } // if (perfectMatch == entry.element && selectionIndex == -1) { // selectionIndex = index; // } // item.setData(entry); // item.setText(0, entry.provider.getName()); // item.setText(1, entry.element.getLabel()); // if (Util.isWpf()) { // item.setImage(1, entry.getImage(entry.element, // resourceManager)); // } // index++; // } // } // } // if (index < items.length) { // table.remove(index, items.length - 1); // } // if (selectionIndex == -1) { // selectionIndex = 0; // } // return selectionIndex; // } // // private List[] computeMatchingEntries(String filter, // QuickAccessElement perfectMatch, int maxCount) { // // collect matches in an array of lists // List[] entries = new ArrayList[providers.length]; // int[] indexPerProvider = new int[providers.length]; // int countPerProvider = Math.min(maxCount / 4, // INITIAL_COUNT_PER_PROVIDER); // int countTotal = 0; // boolean perfectMatchAdded = true; // if (perfectMatch != null) { // // reserve one entry for the perfect match // maxCount--; // perfectMatchAdded = false; // } // boolean done; // do { // // will be set to false if we find a provider with remaining // // elements // done = true; // for (int i = 0; i < providers.length // && (showAllMatches || countTotal < maxCount); i++) { // if (entries[i] == null) { // entries[i] = new ArrayList(); // indexPerProvider[i] = 0; // } // int count = 0; // QuickAccessProvider provider = providers[i]; // if (filter.length() > 0 // || provider instanceof PreviousPicksProvider // || showAllMatches) { // QuickAccessElement[] elements = provider // .getElementsSorted(); // int j = indexPerProvider[i]; // while (j < elements.length // && (showAllMatches || (count < countPerProvider && countTotal < maxCount))) { // QuickAccessElement element = elements[j]; // QuickAccessEntry entry; // if (filter.length() == 0) { // if (i == 0 || showAllMatches) { // entry = new QuickAccessEntry(element, provider, // new int[0][0], new int[0][0]); // } else { // entry = null; // } // } else { // entry = element.match(filter, provider); // } // if (entry != null) { // entries[i].add(entry); // count++; // countTotal++; // if (i == 0 && entry.element == perfectMatch) { // perfectMatchAdded = true; // maxCount = MAX_COUNT_TOTAL; // } // } // j++; // } // indexPerProvider[i] = j; // if (j < elements.length) { // done = false; // } // } // } // // from now on, add one element per provider // countPerProvider = 1; // } while ((showAllMatches || countTotal < maxCount) && !done); // if (!perfectMatchAdded) { // QuickAccessEntry entry = perfectMatch.match(filter, providers[0]); // if (entry != null) { // if (entries[0] == null) { // entries[0] = new ArrayList(); // indexPerProvider[0] = 0; // } // entries[0].add(entry); // } // } // return entries; // } // // protected Control getFocusControl() { // return filterText; // } // // public boolean close() { // storeDialog(getDialogSettings()); // if (textLayout != null && !textLayout.isDisposed()) { // textLayout.dispose(); // } // if (resourceManager != null) { // resourceManager.dispose(); // resourceManager = null; // } // return super.close(); // } // // protected Point getDefaultSize() { // return new Point(350, 420); // } // // protected Point getDefaultLocation(Point initialSize) { // Point size = new Point(400, 400); // Rectangle parentBounds = getParentShell().getBounds(); // int x = parentBounds.x + parentBounds.width / 2 - size.x / 2; // int y = parentBounds.y + parentBounds.height / 2 - size.y / 2; // return new Point(x, y); // } // // protected IDialogSettings getDialogSettings() { // final IDialogSettings workbenchDialogSettings = WorkbenchPlugin // .getDefault().getDialogSettings(); // IDialogSettings result = workbenchDialogSettings.getSection(getId()); // if (result == null) { // result = workbenchDialogSettings.addNewSection(getId()); // } // return result; // } // // protected String getId() { // return "org.eclipse.ui.internal.QuickAccess"; //$NON-NLS-1$ // } // // private void storeDialog(IDialogSettings dialogSettings) { // String[] orderedElements = new String[previousPicksList.size()]; // String[] orderedProviders = new String[previousPicksList.size()]; // String[] textEntries = new String[previousPicksList.size()]; // ArrayList arrayList = new ArrayList(); // for (int i = 0; i < orderedElements.length; i++) { // QuickAccessElement quickAccessElement = (QuickAccessElement) previousPicksList // .get(i); // ArrayList elementText = (ArrayList) textMap.get(quickAccessElement); // Assert.isNotNull(elementText); // orderedElements[i] = quickAccessElement.getId(); // orderedProviders[i] = quickAccessElement.getProvider().getId(); // arrayList.addAll(elementText); // textEntries[i] = elementText.size() + ""; //$NON-NLS-1$ // } // String[] textArray = (String[]) arrayList.toArray(new String[arrayList // .size()]); // dialogSettings.put(ORDERED_ELEMENTS, orderedElements); // dialogSettings.put(ORDERED_PROVIDERS, orderedProviders); // dialogSettings.put(TEXT_ENTRIES, textEntries); // dialogSettings.put(TEXT_ARRAY, textArray); // } // // private void restoreDialog() { // IDialogSettings dialogSettings = getDialogSettings(); // if (dialogSettings != null) { // String[] orderedElements = dialogSettings // .getArray(ORDERED_ELEMENTS); // String[] orderedProviders = dialogSettings // .getArray(ORDERED_PROVIDERS); // String[] textEntries = dialogSettings.getArray(TEXT_ENTRIES); // String[] textArray = dialogSettings.getArray(TEXT_ARRAY); // elementMap = new HashMap(); // textMap = new HashMap(); // previousPicksList = new LinkedList(); // if (orderedElements != null && orderedProviders != null // && textEntries != null && textArray != null) { // int arrayIndex = 0; // for (int i = 0; i < orderedElements.length; i++) { // QuickAccessProvider quickAccessProvider = (QuickAccessProvider) providerMap // .get(orderedProviders[i]); // int numTexts = Integer.parseInt(textEntries[i]); // if (quickAccessProvider != null) { // QuickAccessElement quickAccessElement = quickAccessProvider // .getElementForId(orderedElements[i]); // if (quickAccessElement != null) { // ArrayList arrayList = new ArrayList(); // for (int j = arrayIndex; j < arrayIndex + numTexts; j++) { // String text = textArray[j]; // // text length can be zero for old workspaces, see bug 190006 // if (text.length() > 0) { // arrayList.add(text); // elementMap.put(text, quickAccessElement); // } // } // textMap.put(quickAccessElement, arrayList); // previousPicksList.add(quickAccessElement); // } // } // arrayIndex += numTexts; // } // } // } // } // // protected void handleElementSelected(String text, Object selectedElement) { // if (selectedElement instanceof QuickAccessElement) { // addPreviousPick(text, selectedElement); // storeDialog(getDialogSettings()); // QuickAccessElement element = (QuickAccessElement) selectedElement; // element.execute(); // } // } // // /** // * @param element // */ // private void addPreviousPick(String text, Object element) { // // previousPicksList: // // Remove element from previousPicksList so there are no duplicates // // If list is max size, remove last(oldest) element // // Remove entries for removed element from elementMap and textMap // // Add element to front of previousPicksList // previousPicksList.remove(element); // if (previousPicksList.size() == MAXIMUM_NUMBER_OF_ELEMENTS) { // Object removedElement = previousPicksList.removeLast(); // ArrayList removedList = (ArrayList) textMap.remove(removedElement); // for (int i = 0; i < removedList.size(); i++) { // elementMap.remove(removedList.get(i)); // } // } // previousPicksList.addFirst(element); // // // textMap: // // Get list of strings for element from textMap // // Create new list for element if there isn't one and put // // element->textList in textMap // // Remove rememberedText from list // // If list is max size, remove first(oldest) string // // Remove text from elementMap // // Add rememberedText to list of strings for element in textMap // ArrayList textList = (ArrayList) textMap.get(element); // if (textList == null) { // textList = new ArrayList(); // textMap.put(element, textList); // } // // textList.remove(text); // if (textList.size() == MAXIMUM_NUMBER_OF_TEXT_ENTRIES_PER_ELEMENT) { // Object removedText = textList.remove(0); // elementMap.remove(removedText); // } // // if (text.length() > 0) { // textList.add(text); // // // elementMap: // // Put rememberedText->element in elementMap // // If it replaced a different element update textMap and // // PreviousPicksList // Object replacedElement = elementMap.put(text, element); // if (replacedElement != null && !replacedElement.equals(element)) { // textList = (ArrayList) textMap.get(replacedElement); // if (textList != null) { // textList.remove(text); // if (textList.isEmpty()) { // textMap.remove(replacedElement); // previousPicksList.remove(replacedElement); // } // } // } // } // } // // /** // * // */ // private void handleSelection() { // QuickAccessElement selectedElement = null; // String text = filterText.getText().toLowerCase(); // if (table.getSelectionCount() == 1) { // QuickAccessEntry entry = (QuickAccessEntry) table // .getSelection()[0].getData(); // selectedElement = entry == null ? null : entry.element; // } // close(); // if (selectedElement != null) { // handleElementSelected(text, selectedElement); // } // } // // private class PreviousPicksProvider extends QuickAccessProvider { // // public QuickAccessElement getElementForId(String id) { // return null; // } // // public QuickAccessElement[] getElements() { // return (QuickAccessElement[]) previousPicksList // .toArray(new QuickAccessElement[previousPicksList.size()]); // } // // public QuickAccessElement[] getElementsSorted() { // return getElements(); // } // // public String getId() { // return "org.eclipse.ui.previousPicks"; //$NON-NLS-1$ // } // // public ImageDescriptor getImageDescriptor() { // return WorkbenchImages // .getImageDescriptor(IWorkbenchGraphicConstants.IMG_OBJ_NODE); // } // // public String getName() { // return QuickAccessMessages.QuickAccess_Previous; // } // } // //}